home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / emacs / emacs1855 / emacs1855 < prev    next >
Text File  |  1994-08-27  |  4KB  |  117 lines

  1. Emacs 18.55
  2. -rw-rw-r--  1 gray      1416303 Sep 25 15:15 ++jrb_emacs_src.zoo
  3. -rw-rw-r--  1 gray       142836 Jul 14  1990 temacs.lzh
  4. -rw-rw-r--  1 gray       249642 Jul 14  1990 xemacs.lzh
  5.  
  6.  
  7. ********
  8. ./lisp/README
  9. ********
  10. if you are going to use Gulam as your callout shell, use gshell.el
  11. instead of shell.el
  12.  
  13.  
  14. ********
  15. ./README
  16. ********
  17. Emacs 18.55 tos version
  18.     to re-compile:
  19.  
  20.     make library:
  21.         in lib/  adjust VPATH to point to the gcc-lib-sources
  22.         then hit make. this will pick up files it does'nt find
  23.         from that library. Make sure to also adjust the include
  24.         paths "-I<dirs>" correctly, so that files in h/ are
  25.         found before files in the gcc-tos-lib-include directory.
  26.         (in lib i have provided gnu.olb and crt0.o, so you can
  27.          avoid this step and just use those).
  28.  
  29.     make emacs:
  30.         adjust paths in xmakefile so that include files are first
  31.         found in h/ and then the gcc-lib-include-files. also
  32.         the library you created above should be linked, and not
  33.         the standard tos-gcc-libs. hit make -f xmakefile
  34.         and it will create `temacs'.
  35.     READ the file read_me before proceeding. set up your environment.
  36.  
  37.     test:
  38.         test out temacs by
  39.             temacs -l loadup.el
  40.  
  41.     dumping:
  42.         see the file lisp/dumping.txt
  43.         if you are using gulam:
  44.             temacs -batch -l loadup.el -dump
  45.             mv xemacs xemacs.1
  46.         then start a subshell by executing another copy of gulam
  47.         within gulam.
  48.             before you make the second dump issue
  49.             unsetenv ARGV
  50.             temacs -batch -l loadup.el -dump
  51.             mv xeacs xemacs.2
  52.         now exit the sub-shell (logout will do it)
  53.             dumpfix xemacs.2 xemacs.1 xemacs
  54.             > answer any questions here
  55.         this will result in the undumped emacs called xemacs
  56.  
  57.     i usually use the following alias to run it:
  58. alias emacs 'g:\usr\lib\gnuemacs\bin\xemacs -q -l /dev/G/emacs.rc'
  59.  
  60. as for some strange reason it does'nt find the init file even if
  61.  
  62.     setenv HOME /dev/G
  63. (oh, and i usually keep emacs.rc byte-compiled, so it load faster).
  64.  
  65. if you are using gulam as a shell for (M-x shell), then use gshell.el
  66. instead of shell.el in the lisp directory (you may want to fixup your
  67. loadup.el to make this adjustment)
  68.  
  69. enjoy,
  70. --
  71. bang:   {any internet host}!dsrgsun.ces.CWRU.edu!bammi    jwahar r. bammi
  72. domain: bammi@dsrgsun.ces.CWRU.edu
  73. GEnie:    J.Bammi
  74. --
  75.  
  76. dumping guidelines:
  77.  
  78. Some notes on dumpfix:
  79. First some theory. When i core dump two emacs versions started at different
  80. points in memory, they should be identical in all places except the absolute
  81. pointers. These pointers should have the same difference for any corresponding
  82. locations (the difference of the two basepage addresses). To relocate these
  83. pointers i need the addresses of the basepages. In an emacs dump file i include
  84. these addresses in an unused field of the file header. Now i can scan the two
  85. files to find all longs with difference = basediff (= basepage1 - basepage2).
  86. To relocate them i subtract the basepage address of the file, write the value
  87. back and note the byte for the reloc info.
  88. Other differences than the basediff can occur when we have eg. time-values
  89. at the actual position or if we are looking at the long two bytes before a
  90. value to be relocated. Here is a picture to illustrate this:
  91.  
  92.     +--+--+ +--+--+ +--+--+ +--+--+
  93.     |  a  | |  b  | |  c  | |  d  |
  94.     +--+--+ +--+--+ +--+--+ +--+--+
  95.  
  96. If the variable to relocate is the long consisting of word b & c, the difference
  97. of longs a & b and c & d in the two files will have a wrong value.
  98. Now practical: the occuring differences in emacs have not only the exact value
  99. basediff, but also basediff +- some offset (maybe caused by rounding effects).
  100. Also there are values which i can't (yet) explain. In all these cases the
  101. dumpfix program says "unexpected difference ...".
  102. If i relocate only the places where the difference has exactly the value
  103. basediff, then emacs will crash. So i introduced the FUZZY-factor. If the
  104. offset is not more than FUZZY bytes, i am relocating the location too. This
  105. gives fewer problems, but we still have unexpected values.
  106. What i am doing now is to look wether these values may be pointers to be
  107. relocated. They have to meet several constraints:
  108.     - the value must be even
  109.     - the tag byte (the highest byte of the long is used as a flag in
  110.       emacs) has to be between 0 and 21 (the biggest flag used by emacs)
  111.     - the value resulting from stripping the tag-byte should point into
  112.       the programs text or data or bss (including malloced part) section
  113. If i have these three cases together then the user is asked (it may still be
  114. an ascii string).
  115.  
  116.     - Edgar
  117.